#ifndef __INDICATOR__
#define __INDICATOR__


class indicator {
public:
  indicator(int _max_val=100,const char *title_string = "") :
    max_val(_max_val), title(title_string) {}
  virtual ~indicator() {}
  void draw() {};
  virtual void update(int count)=0;
protected:
  int max_val;
  const char *title;
};

class graph_indicator : public indicator {
public:
  graph_indicator(int _max_val=100,const char *title_string = "");
  virtual ~graph_indicator();
  void draw();
  virtual void update(int count);
protected:
  int left,top,right,bottom;
  int graph_status;
  void *save_graph_ptr;
  int current_pos,current_percent;
};

class check_indicator : public graph_indicator {
public:
  check_indicator(int _max_val=100,const char *title_string = "");
  int check();
protected:
  int left,top,right,bottom;
  virtual void draw_message();
  virtual void draw_check_message();
private:
  char get_yes_no();
};

#endif
